1.3 意図を伝えるための手法
コードベースの各行が価値を持つようにしたい。さらに、各行がその価値とは何かを未来の開発者に明確に伝えるようにしたい。(1.3.2)
1.3.1 コレクション
https://github.com/pviafore/RobustPython/blob/dafb95d801dff2c8ff7856ba46d3c052d54e0033/code_examples/chapter1/cookbooks.py
コレクションの選択によって意図が読み手に伝わる。
例:setを選択することで重複を正しく処理しないことを伝えられる
意図とコードの内容(例:コレクションの選択)にずれがあるたびにメンテナに負担をかける
(コラム?)リストや辞書は動的な性質を持つ
静的なインデックス(例:整数の添字)はリストや辞書に向かない
さらに高い表現力を持つコレクション
collections.Counterを選択することで、読みやすく、同時に簡潔になった例:https://github.com/pviafore/RobustPython/blob/dafb95d801dff2c8ff7856ba46d3c052d54e0033/code_examples/chapter1/cookbooks_counter.py
1.3.2 イテレーション
イテレーションも、どの抽象を選ぶかによって伝わる意図が異なる例の1つだ。
(IMO:イテレーション=反復処理 と理解)
for
while
内包表記
再帰
1.3.3 驚き最小の原則